A solid-state drive (SSD) is a storage device that can be used as an alternative to hard disk drives. Unlike a hard disk drive, an SSD contains no moving parts and uses semiconductor memory for its storage element. A typical semiconductor memory used in SSDs is NAND flash non-volatile memory, such as also used in USB flash memory. SSDs may also be implemented with NOR flash non-volatile memory, although NAND flash is generally more common given its various benefits, including a relatively small footprint as compared to NOR-based flash. In any case, an SSD controller provides a block access interface (512 B multiple) to the host controller. The controller is typically implemented with a processor configured to carry out NAND/media management functions, such as reading/writing of data, encryption, error correction, wear leveling, and garbage collection. A typical NAND controller operates in block mode (e.g., 512 B multiples for reads and writes). NAND based SSDs use parallelism by engaging multiple NAND chips to deliver superior input/output performance compared to hard disk drives. As newer and cheaper generations of NAND SSDs are built based on smaller lithography, more cells per area are achieved. In addition, and regardless of the lithography, more information can be packed in a single cell by using multiple level programming, such as the case with SSDs that use three level cells (TLC) or Quad level cell (QLC) NAND technology. As bits of information per cell increases, the time it takes to program each bit goes up considerably due to the precision required to program each level. This exposes the SSD to complex recovery mechanisms during surprise power loss and large buffering scenarios, making the SSD controller complex and expensive.